// pages/serve/confirm/confirm.js
const app = getApp();
import request from '../../../utils/request';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    serviceInfo: null,     // 服务信息
    familyId: null,        // 家人ID
    familyName: '',        // 家人名称
    serviceTime: '',       // 服务时间（显示格式）
    serviceTimeStr: '',    // 服务时间（提交格式 yyyy-MM-dd HH:mm:ss）
    remark: '',            // 备注
    remarkLength: 0,       // 备注长度
    submitting: false      // 是否正在提交
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 从全局数据获取订单信息
    const orderData = app.globalData.orderConfirmData;
    
    if (!orderData) {
      wx.showToast({
        title: '订单信息异常',
        icon: 'none'
      });
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
      return;
    }
    
    this.setData({
      serviceInfo: orderData.serviceInfo,
      familyId: orderData.familyId,
      familyName: orderData.familyName,
      serviceTime: orderData.serviceTime,
      serviceTimeStr: orderData.serviceTimeStr
    });
  },

  /**
   * 备注输入事件
   */
  onRemarkInput(e) {
    const value = e.detail.value;
    this.setData({
      remark: value,
      remarkLength: value.length
    });
  },

  /**
   * 提交订单
   */
  submitOrder() {
    const { serviceInfo, familyId, serviceTimeStr, remark, submitting } = this.data;
    
    // 防止重复提交
    if (submitting) {
      return;
    }
    
    // 获取全局用户ID
    const userId = app.globalData.userId;
    
    if (!userId) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      setTimeout(() => {
        wx.navigateTo({
          url: '/pages/my/login/login'
        });
      }, 1500);
      return;
    }
    
    // 参数验证
    if (!familyId || !serviceTimeStr) {
      wx.showToast({
        title: '订单信息不完整',
        icon: 'none'
      });
      return;
    }
    
    // 设置提交状态
    this.setData({
      submitting: true
    });
    
    // 调用后端接口创建订单
    request({
      url: '/le/management/wx/createOrder',
      method: 'POST',
      data: {
        elderlyId: parseInt(familyId),
        nursingItemId: parseInt(serviceInfo.id),
        expectedServiceTime: serviceTimeStr,
        orderUserId: parseInt(userId),
        remark: remark || ''
      },
      success: (res) => {
        if (res.data.code === 200) {
          // 清除全局订单数据
          app.globalData.orderConfirmData = null;
          
          wx.showToast({
            title: '下单成功',
            icon: 'success'
          });
          
          // 延迟跳转到订单列表
          setTimeout(() => {
            wx.redirectTo({
              url: '/pages/my/dingdan/dingdan'
            });
          }, 1500);
        } else {
          wx.showToast({
            title: res.data.msg || '下单失败',
            icon: 'none'
          });
          this.setData({
            submitting: false
          });
        }
      },
      fail: (err) => {
        console.error('创建订单失败', err);
        wx.showToast({
          title: '网络异常，请重试',
          icon: 'none'
        });
        this.setData({
          submitting: false
        });
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    // 页面卸载时清除全局订单数据（用户返回的情况）
    if (app.globalData.orderConfirmData) {
      app.globalData.orderConfirmData = null;
    }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

